Set up

library(ggplot2)

df <- read.csv("~/r10.csv")

summary(df)
##       age                      educ                   competition  
##  Min.   :16.00   7               :4801   competition is good:4639  
##  1st Qu.:28.00   University level:4016   5                  :3536  
##  Median :40.00   5               :3336   3                  :3459  
##  Mean   :42.88   3               :2588   2                  :2960  
##  3rd Qu.:56.00   6               :2501   4                  :2941  
##  Max.   :99.00   8               :2380   6                  :1866  
##                  (Other)         :3922   (Other)            :4143  
##     lrscale                   country             sex       
##  5      :5971   710. South Africa : 3033   1. Male  :11948  
##  6      :3303   840. United States: 2112   2. Female:11596  
##  7      :2752   566. Nigeria      : 1759                    
##  8      :2593   392. Japan        : 1591                    
##  4      :2093   528. Netherlands  : 1590                    
##  3      :1813   288. Ghana        : 1552                    
##  (Other):5019   (Other)           :11907                    
##     secular        emancipative   
##  Min.   :0.0000   Min.   :0.0000  
##  1st Qu.:0.2631   1st Qu.:0.3292  
##  Median :0.3878   Median :0.4567  
##  Mean   :0.3884   Mean   :0.4637  
##  3rd Qu.:0.4989   3rd Qu.:0.5885  
##  Max.   :0.9583   Max.   :1.0000  
## 

Simple Linear Regression

fm1 <- lm(emancipative ~ secular, df)

summary(fm1)
## 
## Call:
## lm(formula = emancipative ~ secular, data = df)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.51454 -0.12723 -0.00891  0.11825  0.61822 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 0.316243   0.002874  110.03   <2e-16 ***
## secular     0.379542   0.006788   55.91   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1755 on 23542 degrees of freedom
## Multiple R-squared:  0.1172, Adjusted R-squared:  0.1172 
## F-statistic:  3126 on 1 and 23542 DF,  p-value: < 2.2e-16
plot(fm1)

df$y1 <- fitted(fm1)

p1 <- ggplot(df, aes(x=secular, y=y1))
p1 + geom_point()

Multiple Linear Regression

fm2 <- lm(emancipative ~ secular + country, df)

summary(fm2)
## 
## Call:
## lm(formula = emancipative ~ secular + country, data = df)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.51611 -0.09270 -0.00235  0.09264  0.54758 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                0.242028   0.006348  38.129  < 2e-16 ***
## secular                    0.231710   0.005890  39.340  < 2e-16 ***
## country233. Estonia        0.130448   0.007169  18.195  < 2e-16 ***
## country288. Ghana         -0.017860   0.006977  -2.560   0.0105 *  
## country32. Argentina       0.195212   0.007709  25.321  < 2e-16 ***
## country356. India          0.062386   0.006942   8.986  < 2e-16 ***
## country368. Iraq          -0.055660   0.007436  -7.485 7.40e-14 ***
## country36. Australia       0.270607   0.007387  36.631  < 2e-16 ***
## country392. Japan          0.168849   0.006925  24.382  < 2e-16 ***
## country528. Netherlands    0.277095   0.006918  40.052  < 2e-16 ***
## country566. Nigeria       -0.030981   0.006829  -4.537 5.74e-06 ***
## country608. Philippines    0.085132   0.007191  11.838  < 2e-16 ***
## country643. Russia         0.041732   0.007063   5.908 3.50e-09 ***
## country710. South Africa   0.129192   0.006495  19.892  < 2e-16 ***
## country724. Spain          0.228535   0.007404  30.866  < 2e-16 ***
## country752. Sweden         0.379760   0.007325  51.845  < 2e-16 ***
## country76. Brazil          0.161053   0.007246  22.227  < 2e-16 ***
## country840. United States  0.217665   0.006692  32.529  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1371 on 23526 degrees of freedom
## Multiple R-squared:  0.4617, Adjusted R-squared:  0.4613 
## F-statistic:  1187 on 17 and 23526 DF,  p-value: < 2.2e-16
plot(fm2)

df$y2 <- fitted(fm2)

p2 <- ggplot(df, aes(x=secular, y=y2))
p2 + geom_point()

p2 + geom_point() + facet_wrap( ~ country)

Multiple Linear Regression + Interaction

fm3 <- lm(emancipative ~ secular * country, df)

summary(fm3)
## 
## Call:
## lm(formula = emancipative ~ secular * country, data = df)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.55173 -0.09208 -0.00251  0.09288  0.55638 
## 
## Coefficients:
##                                    Estimate Std. Error t value Pr(>|t|)
## (Intercept)                        0.236344   0.015978  14.791  < 2e-16
## secular                            0.247619   0.041491   5.968 2.44e-09
## country233. Estonia                0.197564   0.020236   9.763  < 2e-16
## country288. Ghana                  0.009297   0.017406   0.534  0.59325
## country32. Argentina               0.259770   0.021150  12.282  < 2e-16
## country356. India                  0.058699   0.019298   3.042  0.00235
## country368. Iraq                  -0.052684   0.019412  -2.714  0.00665
## country36. Australia               0.227704   0.019330  11.780  < 2e-16
## country392. Japan                  0.156455   0.020103   7.783 7.39e-15
## country528. Netherlands            0.242304   0.018980  12.766  < 2e-16
## country566. Nigeria               -0.042018   0.018078  -2.324  0.02012
## country608. Philippines            0.089332   0.019236   4.644 3.44e-06
## country643. Russia                 0.082193   0.019967   4.117 3.86e-05
## country710. South Africa           0.165548   0.017365   9.533  < 2e-16
## country724. Spain                  0.182106   0.019815   9.190  < 2e-16
## country752. Sweden                 0.414020   0.021253  19.480  < 2e-16
## country76. Brazil                  0.200205   0.018642  10.740  < 2e-16
## country840. United States          0.186393   0.017186  10.846  < 2e-16
## secular:country233. Estonia       -0.145343   0.048372  -3.005  0.00266
## secular:country288. Ghana         -0.115710   0.049916  -2.318  0.02045
## secular:country32. Argentina      -0.150216   0.050994  -2.946  0.00322
## secular:country356. India          0.006459   0.048163   0.134  0.89332
## secular:country368. Iraq          -0.007781   0.051411  -0.151  0.87970
## secular:country36. Australia       0.109716   0.048876   2.245  0.02479
## secular:country392. Japan          0.024503   0.049058   0.499  0.61745
## secular:country528. Netherlands    0.078307   0.047188   1.659  0.09703
## secular:country566. Nigeria        0.038257   0.048586   0.787  0.43105
## secular:country608. Philippines   -0.011295   0.051753  -0.218  0.82724
## secular:country643. Russia        -0.087031   0.047597  -1.829  0.06749
## secular:country710. South Africa  -0.089641   0.044195  -2.028  0.04254
## secular:country724. Spain          0.105256   0.048615   2.165  0.03039
## secular:country752. Sweden        -0.074005   0.049629  -1.491  0.13593
## secular:country76. Brazil         -0.116595   0.049061  -2.377  0.01749
## secular:country840. United States  0.093912   0.044690   2.101  0.03562
##                                      
## (Intercept)                       ***
## secular                           ***
## country233. Estonia               ***
## country288. Ghana                    
## country32. Argentina              ***
## country356. India                 ** 
## country368. Iraq                  ** 
## country36. Australia              ***
## country392. Japan                 ***
## country528. Netherlands           ***
## country566. Nigeria               *  
## country608. Philippines           ***
## country643. Russia                ***
## country710. South Africa          ***
## country724. Spain                 ***
## country752. Sweden                ***
## country76. Brazil                 ***
## country840. United States         ***
## secular:country233. Estonia       ** 
## secular:country288. Ghana         *  
## secular:country32. Argentina      ** 
## secular:country356. India            
## secular:country368. Iraq             
## secular:country36. Australia      *  
## secular:country392. Japan            
## secular:country528. Netherlands   .  
## secular:country566. Nigeria          
## secular:country608. Philippines      
## secular:country643. Russia        .  
## secular:country710. South Africa  *  
## secular:country724. Spain         *  
## secular:country752. Sweden           
## secular:country76. Brazil         *  
## secular:country840. United States *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1365 on 23510 degrees of freedom
## Multiple R-squared:  0.4669, Adjusted R-squared:  0.4661 
## F-statistic: 623.8 on 33 and 23510 DF,  p-value: < 2.2e-16
plot(fm3)

df$y3 <- fitted(fm3)

p3 <- ggplot(df, aes(x=secular, y=y3))
p3 + geom_point()

p3 + geom_point() + facet_wrap( ~ country)